perm filename V.FAI[TMP,LCS] blob
sn#493303 filedate 1980-01-04 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00007 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE XM
C00014 00003 DECOUT: IDIVI T,=10 DEC TTY OUT
C00024 00004 XGPOUT: OPEN VRN,XNIT XGP OUTPUT
C00026 00005 INBITS: PUSHJ P,NAMGET INPUT OLD BIT FILE
C00028 00006 CORUP
C00030 00007 GETNAM: MOVEI A, FILE SCAN
C00035 ENDMK
C⊗;
TITLE XM
;******** FOR THICKER LINES, FIRST TYPE <4> FOR DOTS*4 OR <9> FOR DOTS*9
;↓↓AC DEF
A←1
B←2
C←3
D←4
E←5
L←6
U←7
X←11
Y←12
XD←13
T←15
TT←16
P←17
LPDL←←69
NBUFS←←4
DSK←←1
VRN←←2
LMAR←←=0
;;RMAR←←=1699
;;WIDTH←←=1700
LBUFL←←=48 ;LINE LENGTH IN WORDS
;;LSTBIT←←1⊗34
;;OVERLAP←←=50
EXTERN JOBREL,JOBFF,JOBTPC,JOBAPR,JOBCNI
;;MAILBF: BLOCK 40
;;SIGN: 0
LINE: 0
PNTR: 0
BEG: SETOM LINE
GETLIN LINE ;FOR ERROR PRINTOUT
CALLI
HRRZS LINE ;CLEAR LINE BITS
HRRZI A,CORUP
HRRZM A,JOBAPR
HRRZ A,JOBFF ;RESET CORE WITHOUT A RESET
CORE A,
JRST 4,.
MOVEI A,20000 ;REG MPV
APRENB A, ;REG ENABLE OLD WAY!
MOVE P,[-LPDL,,PDL-1]
JRST INBITS
INCHLF: INCHWL 0 ;GET ANOTHER CHARACTER
CAIE 0,12 ;WAS IT A LF?
JRST INCHLF ;GET THE LF
POPJ P,
POPJ1: AOS (P)
CPOPJ: POPJ P,
DECOUT: IDIVI T,=10 ;DEC TTY OUT
HRLM TT,(P)
SKIPE T
PUSHJ P,DECOUT
HLRZ TT,(P)
ADDI TT,60
ROT TT,-7
MOVEM TT,.+2
PUSHJ P,ERRPNT
0
POPJ P,
ERRPNT: HRRZ TT,(P) ;ERROR TTY OUT
MOVEM TT,PNTR
MOVEI TT,LINE
TTYMES TT,
JRST [ OUTSTR[ASCIZ/TTYMES FAILED /]
OUTSTR @PNTR
OUTSTR[ASCIZ/
/]
JRST .+1]
POP P,TT
HRL TT,(TT)
TLNE TT,376
AOJA TT,.-2
JRST 1(TT)
XERR: PUSHJ P,ERRPNT ;DET TTY OUT
ASCIZ/
MESSAGE FROM X WORKING ON /
MOVE TT,FILNAM
PUSHJ P,SIXOUT
PUSHJ P,ERRPNT
ASCIZ/./
HLLZ TT,FILEXT
PUSHJ P,SIXOUT
PUSHJ P,ERRPNT
ASCIZ/[/
MOVE TT,FILPPN
PUSHJ P,SIXOUT
PUSHJ P,ERRPNT
ASCIZ/] : /
POPJ P,
SIXOUT: JUMPE TT,CPOPJ ;SIXBIT OUT
SETZ T,
LSHC T,6
ADDI T,40
PUSH P,TT
ROT T,-7
MOVEM T,.+2
PUSHJ P,ERRPNT
0
POP P,TT
JRST SIXOUT
DETCHK: SETOM DET# ;CK FOR DET JOB
GETLIN DET
HRRES DET
SKIPL DET
AOS (P)
POPJ P,
XGPOUT: OPEN VRN,XNIT ;XGP OUTPUT
JRST NOXGP
OUTSTR[ASCIZ/CRANKING VRN
/]
LOCK
OUTIT: OUT VRN,XGPPTR
JRST OUTOK
DSKERR: PUSHJ P,DETCHK
PUSHJ P,XERR
PUSHJ P,ERRPNT
ASCIZ /VRN OUTPUT ERROR.
/
OUTOK: JRST NEXTNM
UNLOCK
RELEAS VRN,
;;XMORE: PUSHJ P,DETCHK
;; JFCL
;; OUTSTR[ASCIZ/R=REPEAT, X=EXIT /]
;; INCHRW C
;; CAIE C,15
;; JRST .+3
;; INCHRW C
;; JRST XMORE+2 ; WON'T ACCEPT JUST CRLF
;; OUTSTR[ASCIZ/
;;/]
;; CAIE C,"X"
;; CAIN C,"x"
;; SKIPA
;; JRST .+3
PUSHJ P,CORDWN ;REALLY DONE, CORE DOWN
JRST NODEL
;; CAIE C,"R"
;; CAIN C,"r"
;; JRST XGPOUT
;; JRST XMORE+2
NEXTNM: MOVEI =64
ADDM FILNAM ;PUSH UP 5TH LETTER OF NAME
SETZM FILEXT+1 ;FOR LOOKUP
SETZM FILPPN
LOOKUP FILNAM ;IS IT THERE?
JRST OUTOK+1 ;NO, WE'RE ALL DONE
MOVE U,UU ;GET BACK NEEDED INFO
SETZ 10,
JRST TRYTRY+2 ;NOW PRINT NEXT FILE
NODEL: RELEASE DSK,
SKIPGE DET
PUSHJ P,XERR
PUSHJ P,ERRPNT
ASCIZ/ALL DONE!
/
CALLI 12 ;LEAVE
NOXGP: PUSHJ P,DETCHK
PUSHJ P,XERR
PUSHJ P,ERRPNT
ASCIZ /
WAITING FOR VRN /
HRRZI A,1017
HRRZM A,XNIT
JRST XGPOUT
XNIT: 417
'VRN '
0
XGPPTR: BLOCK 2
CORDWN: MOVE T,JOBFF
SUBI T,1
CALLI T,11
JRST 4,.
POPJ P,
INBITS: PUSHJ P,NAMGET ;INPUT OLD BIT FILE
HRRZ U,JOBFF
HRRZI T,177(U)
CORE T,
JRST INBITS
SOJ U,
HRLI U,-200
OPEN [17↔'DSK '↔0]
JRST INBITS
LOOKUP FILNAM
JRST INBITS
movem U,UU# ;SAVE FOR NEXT FILE
SETZ 10,
TRYTRY: OPEN VRN,XNIT ;***** GRAB THE VRN BEFORE CORE EXPANSION
JRST NONO ;CAN'T GET IT!
INPUT U
MOVE T,[BYTE (12)4001,LMAR,LBUFL]
EXCH T,1(U)
HLL U,T
MOVEM U,XGPPTR
HRLI U,(T)
TLNN U,777777
JRST CLOZE
ADDI U,200
MOVNI T,(T)
ADDI T,(U)
CORE T,
JRST INBITS ;HANG
INPUT U
;;CLOZE: RELEAS
CLOZE: JRST XGPOUT
NONO: OUTSTR[ASCIZ/
WAITING FOR VRN /]
HRRZI A,1017
HRRZM A,XNIT
JRST TRYTRY
;CORUP
CORUP:
REPEAT 0,< OLD WAY - FLUSHED BY REG 1-3-76
HRRZ B,JOBCNI
CAIE B,20000
DISMIS
MOVE A,JOBTPC
MOVEM A,IPC+1
UWAIT
DEBREAK
>;END REPEAT 0
REPEAT 0,<
INTJEN IPC
>
JRST 2,@JOBTPC ;REG THIS IS HOW TO DISMISS OLD INTERRUPT
NOMPV: OUTSTR [ASCIZ/UNEXPECTED INTERRUPT?
/]
JRST 2,@JOBTPC
GETNAM: MOVEI A, ;FILE SCAN
MOVE B,[440600,,A]
GETNML: PUSHJ P,RCH
POPJ P,
SUBI C,40
TLNE B,770000
IDPB C,B
JRST GETNML
GETP: MOVEI A,
GETPL: PUSHJ P,RCH
POPJ P,
TRNE A,770000
JRST GETPL
LSH A,6
ADDI A,-40(C)
JRST GETPL
RCH: INCHWL C
CAIN C,42
JRST RCHQ
CAIE C,11
CAIN C," "
JRST RCH
CAIE C,"."
CAIN C,","
POPJ P,
CAIE C,"["
CAIN C,"]"
POPJ P,
RCHQR: CAIGE C,40
POPJ P,
CAIL C,"a"
CAILE C,"z"
CAIA
SUBI C,40
JRST POPJ1
RCHQ: INCHWL C
JRST RCHQR
NAMGET: OUTSTR [ASCIZ/
FILE = /]
SETZM FILEXT+1
SETZM FILPPN
MOVSI A,'BIT'
MOVEM A,FILEXT
PUSHJ P,GETNAM
SKIPN A
MOVE A,['PLT ']
MOVEM A,FILNAM
CAIE C,"."
JRST NOEXTN
PUSHJ P,GETNAM
MOVEM A,FILEXT
NOEXTN: CAIE C,"["
JRST FFDX
PUSHJ P,GETP
HRLZM A,FILPPN
PUSHJ P,GETP
HRRM A,FILPPN
FFDX: INCHRW C
CAIE C,12
JRST FFDX
POPJ P,
FILNAM: 0 ;GLOPS OF JUNK
FILEXT: 0
0
FILPPN: 0
LKENT: BLOCK 4
;;XGSNAM: 0
;;XGSEXT: 0
;; 0
;;XGSPPN: 0
;;IBUF: BLOCK 3
BITTAB: FOR I←43,0,-1{1⊗I
}
BYTTAB: FOR I←36,0,-6{REPEAT 6,{77⊗I}}
;;DBUF: BLOCK LBUFL+2
PDL: BLOCK LPDL
END BEG